// 搜索的关键字
let keyword = ''
const app = getApp()

Page({
    /**
     * 页面的初始数据
     */
    data: {
        blogList: []
    },

    /**
     * 生命周期函数--监听页面加载
     */
    onLoad(options) {
        this._loadBlogList()
    },

    // 加载博客列表
    _loadBlogList(start = 0) {
        wx.showLoading({
            title: '加载中',
        })
        wx.cloud.callFunction({
            name: 'blog',
            data: {
                keyword,
                start,
                count: 10,
                $url: 'list'
            }
        }).then(res => {
            this.setData({
                blogList: this.data.blogList.concat(res.result)
            })
            wx.hideLoading()
            wx.stopPullDownRefresh()
        })
    },

    // 搜索博客
    onSearch(event) {
        this.setData({
            blogList: []
        })
        keyword = event.detail.keyword
        this._loadBlogList(0)
    },

    // 发布功能
    onPublish() {
        // 20221128小程序用户头像昵称获取规则调整
        // 判断本地存储中是否有用户信息
        // 用户信息在本地存储，key为openid + '-userinfo'
        wx.getStorage({
            key: app.globalData.openid + '-userinfo',
            success(res) {
                const {
                    nickname,
                    avatarFileId
                } = res.data
                // 如果用户信息存在，那么就跳转到发博客页面
                wx.navigateTo({
                    url: `../blog-edit/blog-edit?nickName=${nickname}&avatarUrl=${avatarFileId}`,
                })
            },
            fail() {
                // 如果不存在用户信息，就跳转到用户信息配置页面
                wx.showToast({
                    icon: 'loading',
                    title: '请配置用户信息',
                })
                setTimeout(() => {
                    wx.navigateTo({
                        url: '../userinfo/userinfo',
                    })
                }, 1500)
            }
        })
    },

    // 跳转到博客详情页
    goToDetail(event) {
        wx.navigateTo({
            url: `../blog-detail/blog-detail?blogId=${event.target.dataset.blogid}`,
        })
    },

    /**
     * 页面相关事件处理函数--监听用户下拉动作
     */
    onPullDownRefresh() {
        this.setData({
            blogList: []
        })
        this._loadBlogList(0)
    },

    /**
     * 页面上拉触底事件的处理函数
     */
    onReachBottom() {
        this._loadBlogList(this.data.blogList.length)
    },

    /**
     * 用户点击右上角分享
     */
    onShareAppMessage(event) {
        console.log('博客列表-分享', event)
        const blog = event.target.dataset.blog
        return {
            title: blog.content,
            path: `/pages/blog-detail/blog-detail?blogId=${blog._id}`
        }
    }
})